package com.yuke.cloud.service.pmc.service;

import com.yuke.cloud.common.core.support.IService;
import com.yuke.cloud.service.api.pmc.dto.ProdCategoryDto;
import com.yuke.cloud.service.api.pmc.dto.ProdSpecApiDto;
import com.yuke.cloud.service.pmc.dto.CategoryDto;
import com.yuke.cloud.service.pmc.dto.ProdBrandCategoryDto;
import com.yuke.cloud.service.pmc.dto.ProdCategoryBrandDto;
import com.yuke.cloud.service.pmc.entity.ProdCategory;

import java.util.List;


/**
 * Created by zys on 2018/09/28.
 */
public interface ProdCategoryService extends IService<ProdCategory> {
    int isEnable(Long categoryId, Integer isEnable);
    List<CategoryDto> findAllEnableList(Byte saleType);
    List<CategoryDto> findAllList();
    CategoryDto findInfoById(Long id);
    void leafCategoryId (Long categoryId, List<Long> categoryIds);
    void subCategoryId (Long categoryId, List<Long> categoryIds);
    List<Long> getSubCategorysByParent(Long parentCategoryId);
    //PmcSpecFeignApi
    ProdCategoryDto getCategoryBySpecId(Long specId);
    List<ProdCategoryDto> getCategorysBySpecId(Long specId);
    List<ProdCategoryDto> getCategorysBySpecIds(List<Long> specIds);
    void parentCategoryId(Long categoryId, List<Long> categoryIds);
    List<ProdCategoryBrandDto> getProdCategoryBrand(ProdCategoryBrandDto prodCategoryBrandDto,Long shopId);
    List<ProdBrandCategoryDto>  getFilter(ProdCategoryBrandDto prodCategoryBrandDto);
    List<CategoryDto> getFindCategory(Byte categoryType);
    List<ProdCategory> getFindAllCategory();
    List<ProdCategoryBrandDto> getProdBrandCategory(ProdCategoryBrandDto prodCategoryBrandDto, Long shopId);
    List<ProdCategory> findAppCategoryOneLevel(Byte saleType);
    List<ProdCategory> findAppCategoryTwoLevel(Long categoryId,String tag);
    List<Long> findLeaf(ProdCategoryDto prodCategoryDto);
    List<ProdCategory> findCategoryByClassId(Long categoryId,String tag);

    List<ProdSpecApiDto> findParent(List<Long> list);
}
